﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Reporting.WebForms;
using SIBI.Helpers;
using SIBI.Models;

namespace MvcReportViewer.Reports.TransferenciaMensual
{
    public partial class Reporte : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
          
       
            f_Reporte();
        }
        private void f_Reporte()
        {
            // Obtener Parametros
            string lsclase = this.txtClase.Text.TrimEnd().ToUpper();
            int lnano = 0;
            int.TryParse( this.txtAno.Text, out lnano);
            int lnmes = ddlMes.SelectedIndex;
            //Crear Datasets que usa el Reporte
            ReportHelper.RepDataSet<string> tblReporte = new ReportHelper.RepDataSet<string>("Reporte", "repNombre");
            tblReporte.Rows.Add(new object[] { "Reporte de Transferencia Mensual" });
            // Llenar Datasets con Datos desde el Contexto o Contextos.
            using (SIBIContext db = new SIBIContext())
            {
                var qbuscar = (from Movimiento s in db.Movimientoes
                  .Where(s => ((lsclase.Equals("") || s.nbin.nmym.ncob.cnom.ToUpper().Contains(lsclase)) &&
                                  ((lnmes == 0) || (s.dmov.Value.Month == lnmes)) &&
                                  (s.dmov.Value.Year == lnano)&&
                                  (s.CausaMovimientoId == 7)
                               )

                        )
                               select new
                               {
                                   BienInformaticoId=s.BienInformaticoId,
                                   cmod=s.nbin.nmym.cmod,
                                   Marca_cnom=s.nbin.nmym.nmar.cnom,
                                   ClaseObjeto_cnom=s.nbin.nmym.ncob.cnom,
                                   TipoBien_cnom=s.nbin.ntib.cnom,
                                   empleados=s.nbin.ncar.empleados,
                                   localidad_nombre=s.nbin.nloc.localidad_nombre,
                                   ceco_descripcion=s.nbin.ncec.ceco_descripcion,
                                   dmov=s.dmov

                               }
                );
                ReportViewer1.Reset();
                // Cargar el Reporte en pantalla, con sus parametros.
                ReportHelper.SetReportData(ReportViewer1, "/REP/REP_TransfMensual.rdl", "Reporte,Movimientos",
                    new object[] { tblReporte, qbuscar.ToList() }
                    , "repNombre", "Reporte de Transferencia Mensual");
            }

        }

        
        protected void Button1_Click(object sender, EventArgs e)
        {
            f_Reporte();
        }
    }
}
